package com.example.sj10.util;

import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Build;

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

public class PermissionUtil {
    public static final int REQUEST_STORAGE_PERMISSION = 1001;

    // 检查存储权限（适配 Android 版本）
    // 注意：对于API 30+，访问相册不再需要存储权限
    public static boolean checkStoragePermission(Activity activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            // Android 11+：不再需要存储权限来访问相册
            // 但如果需要写入外部存储或管理文件，仍需MANAGE_EXTERNAL_STORAGE权限
            return true;
        } else {
            return ContextCompat.checkSelfPermission(activity,
                    android.Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
        }
    }

    // 请求存储权限（适配 Android 版本）
    public static void requestStoragePermission(Activity activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            // Android 11+：访问相册不再需要存储权限
            // 这里可以显示提示信息，但不再跳转到权限设置
            // 如果应用需要更广泛的存储访问，才调用requestManageExternalStorage
            // 由于我们只需要访问相册，这里可以简化处理
            return;
        } else {
            ActivityCompat.requestPermissions(activity,
                    new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE},
                    REQUEST_STORAGE_PERMISSION);
        }
    }
    
    // 检查是否可以直接访问相册（无需存储权限）
    public static boolean canAccessMediaFiles(Activity activity) {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R || 
               checkStoragePermission(activity);
    }
}